home *** CD-ROM | disk | FTP | other *** search
- | c_speak.s (alcyon version, circa 18 sept 1990)
- |
- | $Log: c_speak.s,v $
- | Revision 2.1 1991/09/14 21:13:34 rosenkra
- | clean up for release to atari.archive.
- |
- | Revision 2.0 1991/09/14 15:52:28 rosenkra
- | port to GNU C. assembler still needed, though it could be inlined.
- | it won't be portable anyway and this is just as easy. this is for
- | the GAS assembler.
- |
- | Revision 1.0 1991/09/14 01:51:22 rosenkra
- | Initial revision
- |
- |
- | this is the inline assembler from talk.c which calls speak.tos in 2 passes
- | the first is to translate the ascii string into phonemes and the second
- | actually does the talking. i found it much easier to get this to work with
- | a seperate .s file rather than trying to figure out inline assembler.
- |
- | note the registers MUST be saved. i am not sure which so i save them all.
- |
- | compile this with gas (GNU).
- |
-
- .text
-
- rcsid_c_speak_s:
- .ascii "$Id: c_speak.s,v 2.1 1991/09/14 21:13:34 rosenkra Exp $\0"
-
- .even
-
- .globl _c_speak | this module
- .globl _program | -> to speak.tos start
-
- _c_speak:
- moveml a0-a6/d0-d7,sp@- | save all registers. speak kills 'em
-
- movel #50,d0 | set up first jump..
- addl _program,d0
- movel d0,a2
- jbsr a2@ | go!
-
- movel #136,d0 | set up second jump...
- addl _program,d0
- movel d0,a2
- jbsr a2@ | now speak
-
-
- moveml sp@+,a0-a6/d0-d7 | restore registers
-
- rts
-
-